package com.ruoyi.basic.mapper;

import com.ruoyi.basic.domain.Column;
import java.util.List;

/**
 * 栏目Mapper接口
 *
 * @author ruoyi
 * @date 2025-01-22
 */
public interface ColumnMapper {
    /**
     * 查询栏目
     *
     * @param id 栏目主键
     * @return 栏目
     */
    public Column selectColumnById(Long id);

    /**
     * 查询栏目列表
     *
     * @param column 栏目
     * @return 栏目集合
     */
    public List<Column> selectColumnList(Column column);

    /**
     * 新增栏目
     *
     * @param column 栏目
     * @return 结果
     */
    public int insertColumn(Column column);

    /**
     * 修改栏目
     *
     * @param column 栏目
     * @return 结果
     */
    public int updateColumn(Column column);

    /**
     * 删除栏目
     *
     * @param id 栏目主键
     * @return 结果
     */
    public int deleteColumnById(Long id);

    /**
     * 批量删除栏目
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteColumnByIds(Long[] ids);

    /**
     * 查询栏目是否存在子节点
     *
     * @param columnId 栏目ID
     * @return 结果
     */
    public int hasChildByColumnId(Integer columnId);

    /**
     * 查询栏目的所有子节点
     *
     * @param columnId 栏目ID
     * @return 子节点列表
     */
    public List<Column> selectChildrenColumnById(Integer columnId);

    /**
     * 修改子元素关系
     *
     * @param columns 子元素
     * @return 结果
     */
    public int updateColumnChildren(List<Column> columns);

    List<Column> selectDistinctTags(String columnValue);
}